package com.example.demokotlin

import org.junit.Test

/**
 * <pre>
 * author : zhouronghua
 * e-mail : zhouronghua01@dreamxr.com
 * time : 2023/04/07
 * desc : 内部类相当于Java的内部类，外部类和内部类可以相互引用
 * version: 1.0
 * </pre>
 */
class Body {

    var name = "Body"

    var hand = Hand()

    fun show() {
        println("Body 的身体打印 show 手指个数：${hand.finger}")
    }

    /**
     * 内部类 inner class
     */
    inner class Hand {
        /**
         * 手指10个
         */
        var finger: Int = 10

        fun show() {
            // 打印身体信息
            this@Body.show()
            println("这是Hand 的show")
        }
    }
}


class InnerClassTest {

    @Test
    fun testInnerClass() {
        val body = Body()
        body.show()
        println("===打印手信息===")
        body.hand.show()
    }

}